今天就來講一開始讓初學者會非常困惑的指標好了 (只有我會困惑)
在了解指標之前,必須先了解在C中的資料型態
int x; //整數資料型態
int *p; //指標資料型態 (指向整數變數的記憶體位址)
p=&x; //取變數的記憶體位址
實體想像可以如下
這邊可以用printf的方式來驗證
printf("%p\n",&x);
printf("%p\n",p);
printf("%d",*p);
以下在來個例子 (面試很多這些奇怪指來指去的例題)
這邊拆成兩個part來講解
//part 1
int x=2,y=3,z=4;
int *p=&x,*q=&y,*r=&z;
*q=*p+*r;
//part2
q=p;
p=r;
*r=*p+*q;
r=&x;
x=*r+*q;
part1是將整數資料型態的變數都定義好之後
再將指標資料型態指到相對應的記憶體位址後再運算
part2比較特別的是
q=p;
q指向p所指向的記憶體位址
p=r;
p指向r所指向的記憶體位址